home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / pdc / release_notes < prev   
Text File  |  1990-04-19  |  6KB  |  123 lines

  1. Release notes for PDC 3.33:
  2.  
  3. Name and copyright clarifications
  4. ---------------------------------
  5. While PDC is an acronym for "Publicly Distributable C", it has been
  6. frequently equated with "Public Domain C", which this software
  7. distribution emphatically IS NOT.  Rather, the distribution (which
  8. includes a compiler, assembler, linker, librarian, and numerous
  9. utilities, documentation files, libraries, and header files) is as a
  10. whole freely distributable.  Many pieces of PDC belong to the public
  11. domain and are expressly labeled so.  Others are copyrighted and have
  12. messages from the authors describing their terms of distribution.
  13.  
  14. Development history
  15. -------------------
  16. The Fish disks have included a number of compilers and assemblers.
  17. These have had many bugs and not usable by the uninitiated C-programmer.
  18. Fish disk #110 gathered together Charlie Gibb's assembler and Jeff Lydiatt's
  19. port of PDC.  It was usable by those who understand about compilers, but
  20. generally limited in application because floats and an integrated preprocessor
  21. were missing.  Paul then took PDC and added these two crucial missing features
  22. and fixed many bugs.  This provided a more robust implementation for the
  23. experienced programmer.  The first release of Paul's work was PDC release 3.1
  24. which I distributed at AmiExpo/Midwest in July '88.  PDC release 3.2 was a
  25. repackaging and maintenance release which did not see extensive distribution. 
  26.  
  27. About PDC release 3.3 (August, 1989)
  28. ------------------------------------
  29. This release presents a programming environment that is even more robust
  30. and easier to use than before.  This is not to say that PDC will ever
  31. be considered commercial-grade, rather that it is now accessible to
  32. programmers at every experience level.  Here is a list of features for
  33. the PDC Software Distribution release 3.3:
  34.  
  35.         - PDC Compiler:
  36.             - Many ANSI features.  Support includes the following:
  37.                 - All ANSI preprocessor directives
  38.                 - Function prototyping
  39.                 - Structure passing and assignment
  40.             - Supports Lattice-compatible libcall #pragmas, plus a #pragma
  41.               switch to specify CPU or library based 32-bit integer math.
  42.             - Can generate and use pre-compiled header files.
  43.             - Allows inline code generation for __BUILTIN_ functions.
  44.             - Capable of generating stack-checking code (function wrappers).
  45.             - Can be compiled and run under UNIX (SunOS), generating DBX
  46.               debugging info.
  47.     - General distribution containing executables, header files, 
  48.           libraries, sample files, and documentation on a single disk.
  49.         - Many additional tools and utilities
  50.             - A68k version 2.6
  51.             - CCX compiler frontend (UNIX cc clone)
  52.             - BLink version 6.7
  53.             - Make utility
  54.             - Bind utility for generating stub-routines
  55.             - Libr object module librarian
  56.     - Source included:
  57.             - Latest version of the PDC Compiler.
  58.             - Latest release of Charlie Gibb's A68k assembler.
  59.         - PDC Libraries and miscellaneous utility programs.
  60.     - Presents a straightforward baseline for Amiga programming, and
  61.       usable as a "turnkey" compiler for source code distributions.
  62.  
  63. Changes/Fixes for this relese
  64. -----------------------------
  65. - Fixed moveq peephole optimization to eliminate needless sign extensions.
  66. - Fixed sign problem with libcall pragma function offsets.
  67. - Improved support for unsigned types.
  68. - Changed acrt0.o so that entry stack pointer is available in _initialSP.
  69. - Fixed the semantics of multidimensional arrays.
  70. - Fixed a problem where external libcall names conflict with user-defined 
  71.   globals of the same name.
  72. - system() now has a maximum path of 255 char and dynamically-allocates
  73.   storage for parameters so the parameter list can be of any length.
  74. - Removed recursion from system()'s path-building function.
  75. - Fixed system() to release FileLocks correctly.
  76. - Added checking for 0x80000000 special case to format(). [Fixes a codegen bug]
  77. - Added missing formatting character in putword().    [Fixes a codegen bug]
  78. - Fixed a reported bug in the formatting of padded strings.
  79. - Added to ccx.c support for the PDCTmpArea environment variable, updated docs
  80. - Corrected default make targets for PDC in rules.c
  81. - Fixed trailing-newline make bug in reader.c
  82. - Made getenv return null, in accordance with ANSI spec, when no variable found.
  83. - Added ability to generate function wrappers (.entry and .exit).  Appropriately
  84.   written wrappers can be used to perform stack checking, program flow tracing,
  85.   profiling, etc.
  86.  
  87. Changes/Fixes for PDC 3.30.2
  88. ----------------------------
  89. - CCX can now take options interspersed with operands, i.e.: ccx Pi.c -lmath
  90. - Added PDC-specific default rules to Make utility.
  91.  
  92. Bug list 
  93. -------- 
  94. - PDC cannot correctly take the address of function parameters that are of
  95.   type char or short.  You can circumvent this bug by assigning the paramter
  96.   to a dummy variable and taking the address of that.  You might consider
  97.   declaring the dummy variable as 'static', particularly if you want the
  98.   address to be valid after returning from the function, just beware of
  99.   multiple invocations. 
  100. - The arithmetic assignment and (++/--) operators do not function correctly
  101.   for floating-point values.
  102. - PDC cannot generate correct code for addressing automatic variables beyond 
  103.   32K into the stack frame (a common limitation due to 68000 address modes)
  104. - Buffer flushing is not being performed as it should be on writes to interactive
  105.   files (consoles).
  106.  
  107. Work in progress
  108. ----------------
  109.     - Better code generation.
  110.         - Direct generation of object code.
  111.         - Amiga debugging support.
  112.         - Integration with editors that support AReXX.
  113.         - Programmer AReXX support.
  114.         - A linker to replace BLink.
  115.  
  116. Directions for future work
  117. --------------------------
  118.         - IFF-based object format and resource editor.
  119.  
  120.  
  121.                                 Lionel D. Hummel
  122.                                 4 April 1990
  123.